﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Hermes.Framework.Filesystem
{
    public abstract class FileSystemObject
    {
        protected string name;

        protected FileSystemDirectory parentDirectory;

        protected FileSystemProtocol protocol;

        protected IList<Attribute> attributes;

        public FileSystemObject()
        {

        }

        public FileSystemObject(String name)
        {
            this.name = name;
        }

        public String Name
        {
            get
            {
                return this.name;
            }
            set
            {
                this.name = value;
            }
        }

        protected DateTime creationDate;

        public virtual DateTime CreationDate
        {
            get { return creationDate; }
            set { creationDate = value; }
        }

        protected DateTime modifiedDate;

        public virtual DateTime ModifiedDate
        {
            get { return modifiedDate; }
            set { modifiedDate = value; }
        }

        public Attribute[] Attributes
        {
            get
            {
                return this.attributes.ToArray<Attribute>();
            }
        }
    }
}
